﻿using System.Collections.Generic;

namespace Odyssey.Consul.Configurations
{
    public class DebugModelConfiguration
    {
        public string ACLAgentMasterToken { get; set; }

        public string ACLAgentToken { get; set; }

        public string ACLDatacenter { get; set; }

        public string ACLDefaultPolicy { get; set; }

        public string ACLDisabledTTL { get; set; }

        public string ACLDownPolicy { get; set; }

        public bool ACLEnableKeyListPolicy { get; set; }

        public bool ACLEnableTokenPersistence { get; set; }

        public bool ACLEnforceVersion8 { get; set; }

        public string ACLMasterToken { get; set; }

        public string ACLPolicyTTL { get; set; }

        public string ACLReplicationToken { get; set; }

        public string ACLRoleTTL { get; set; }

        public string ACLToken { get; set; }

        public bool ACLTokenReplication { get; set; }

        public string ACLTokenTTL { get; set; }

        public bool ACLsEnabled { get; set; }

        public string AEInterval { get; set; }

        public string AdvertiseAddrLAN { get; set; }

        public string AdvertiseAddrWAN { get; set; }

        public List<object> AllowWriteHTTPFrom { get; set; }

        public bool AutoEncryptAllowTLS { get; set; }

        public bool AutoEncryptTLS { get; set; }

        public bool AutopilotCleanupDeadServers { get; set; }

        public bool AutopilotDisableUpgradeMigration { get; set; }

        public string AutopilotLastContactThreshold { get; set; }

        public int AutopilotMaxTrailingLogs { get; set; }

        public string AutopilotRedundancyZoneTag { get; set; }

        public string AutopilotServerStabilizationTime { get; set; }

        public string AutopilotUpgradeVersionTag { get; set; }

        public string BindAddr { get; set; }

        public bool Bootstrap { get; set; }

        public int BootstrapExpect { get; set; }

        public string CAFile { get; set; }

        public string CAPath { get; set; }

        public string CertFile { get; set; }

        public string CheckDeregisterIntervalMin { get; set; }

        public int CheckOutputMaxSize { get; set; }

        public string CheckReapInterval { get; set; }

        public string CheckUpdateInterval { get; set; }

        public List<object> Checks { get; set; }

        public List<string> ClientAddrs { get; set; }

        public List<object> ConfigEntryBootstrap { get; set; }

        public Dictionary<string, string> ConnectCAConfig { get; set; }

        public string ConnectCAProvider { get; set; }

        public bool ConnectEnabled { get; set; }

        public bool ConnectProxyAllowManagedAPIRegistration { get; set; }

        public bool ConnectProxyAllowManagedRoot { get; set; }

        public int ConnectProxyBindMaxPort { get; set; }

        public int ConnectProxyBindMinPort { get; set; }

        public Dictionary<string, string> ConnectProxyDefaultConfig { get; set; }

        public List<object> ConnectProxyDefaultDaemonCommand { get; set; }

        public string ConnectProxyDefaultExecMode { get; set; }

        public List<object> ConnectProxyDefaultScriptCommand { get; set; }

        public int ConnectSidecarMaxPort { get; set; }

        public int ConnectSidecarMinPort { get; set; }

        public string ConnectTestCALeafRootChangeSpread { get; set; }

        public bool ConnectTestDisableManagedProxies { get; set; }

        public int ConsulCoordinateUpdateBatchSize { get; set; }

        public int ConsulCoordinateUpdateMaxBatches { get; set; }

        public string ConsulCoordinateUpdatePeriod { get; set; }

        public string ConsulRaftElectionTimeout { get; set; }

        public string ConsulRaftHeartbeatTimeout { get; set; }

        public string ConsulRaftLeaderLeaseTimeout { get; set; }

        public string ConsulServerHealthInterval { get; set; }

        public int DNSARecordLimit { get; set; }

        public List<string> DNSAddrs { get; set; }

        public bool DNSAllowStale { get; set; }

        public string DNSAltDomain { get; set; }

        public string DNSCacheMaxAge { get; set; }

        public bool DNSDisableCompression { get; set; }

        public string DNSDomain { get; set; }

        public bool DNSEnableTruncate { get; set; }

        public string DNSMaxStale { get; set; }

        public bool DNSNodeMetaTXT { get; set; }

        public string DNSNodeTTL { get; set; }

        public bool DNSOnlyPassing { get; set; }

        public int DNSPort { get; set; }

        public string DNSRecursorTimeout { get; set; }

        public List<object> DNSRecursors { get; set; }

        public DNSSOAConfiguration DNSSOA { get; set; }

        public Dictionary<string, string> DNSServiceTTL { get; set; }

        public int DNSUDPAnswerLimit { get; set; }

        public bool DNSUseCache { get; set; }

        public string DataDir { get; set; }

        public string Datacenter { get; set; }

        public bool DevMode { get; set; }

        public bool DisableAnonymousSignature { get; set; }

        public bool DisableCoordinates { get; set; }

        public bool DisableHTTPUnprintableCharFilter { get; set; }

        public bool DisableHostNodeID { get; set; }

        public bool DisableKeyringFile { get; set; }

        public bool DisableRemoteExec { get; set; }

        public bool DisableUpdateCheck { get; set; }

        public bool DiscardCheckOutput { get; set; }

        public string DiscoveryMaxStale { get; set; }

        public bool EnableAgentTLSForChecks { get; set; }

        public bool EnableCentralServiceConfig { get; set; }

        public bool EnableDebug { get; set; }

        public bool EnableLocalScriptChecks { get; set; }

        public bool EnableRemoteScriptChecks { get; set; }

        public bool EnableSyslog { get; set; }

        public bool EnableUI { get; set; }

        public string EncryptKey { get; set; }

        public bool EncryptVerifyIncoming { get; set; }

        public bool EncryptVerifyOutgoing { get; set; }

        public List<string> GRPCAddrs { get; set; }

        public int GRPCPort { get; set; }

        public string GossipLANGossipInterval { get; set; }

        public int GossipLANGossipNodes { get; set; }

        public string GossipLANProbeInterval { get; set; }

        public string GossipLANProbeTimeout { get; set; }

        public int GossipLANRetransmitMult { get; set; }

        public int GossipLANSuspicionMult { get; set; }

        public string GossipWANGossipInterval { get; set; }

        public int GossipWANGossipNodes { get; set; }

        public string GossipWANProbeInterval { get; set; }

        public string GossipWANProbeTimeout { get; set; }

        public int GossipWANRetransmitMult { get; set; }

        public int GossipWANSuspicionMult { get; set; }

        public List<string> HTTPAddrs { get; set; }

        public List<object> HTTPBlockEndpoints { get; set; }

        public int HTTPPort { get; set; }

        public Dictionary<string, string> HTTPResponseHeaders { get; set; }

        public List<object> HTTPSAddrs { get; set; }

        public int HTTPSPort { get; set; }

        public string KeyFile { get; set; }

        public string LeaveDrainTime { get; set; }

        public bool LeaveOnTerm { get; set; }

        public string LogFile { get; set; }

        public string LogLevel { get; set; }

        public int LogRotateBytes { get; set; }

        public string LogRotateDuration { get; set; }

        public string NodeID { get; set; }

        public Dictionary<string, string> NodeMeta { get; set; }

        public string NodeName { get; set; }

        public bool NonVotingServer { get; set; }

        public string PidFile { get; set; }

        public string PrimaryDatacenter { get; set; }

        public string RPCAdvertiseAddr { get; set; }

        public string RPCBindAddr { get; set; }

        public string RPCHoldTimeout { get; set; }

        public int RPCMaxBurst { get; set; }

        public int RPCProtocol { get; set; }

        public int RPCRateLimit { get; set; }

        public int RaftProtocol { get; set; }

        public string RaftSnapshotInterval { get; set; }

        public int RaftSnapshotThreshold { get; set; }

        public string ReconnectTimeoutLAN { get; set; }

        public string ReconnectTimeoutWAN { get; set; }

        public bool RejoinAfterLeave { get; set; }

        public string RetryJoinIntervalLAN { get; set; }

        public string RetryJoinIntervalWAN { get; set; }

        public List<object> RetryJoinLAN { get; set; }

        public int RetryJoinMaxAttemptsLAN { get; set; }

        public int RetryJoinMaxAttemptsWAN { get; set; }

        public List<object> RetryJoinWAN { get; set; }

        public string Revision { get; set; }

        public int SegmentLimit { get; set; }

        public string SegmentName { get; set; }

        public int SegmentNameLimit { get; set; }

        public List<object> Segments { get; set; }

        public string SerfAdvertiseAddrLAN { get; set; }

        public string SerfAdvertiseAddrWAN { get; set; }

        public string SerfBindAddrLAN { get; set; }

        public string SerfBindAddrWAN { get; set; }

        public int SerfPortLAN { get; set; }

        public int SerfPortWAN { get; set; }

        public bool ServerMode { get; set; }

        public string ServerName { get; set; }

        public int ServerPort { get; set; }

        public List<object> Services { get; set; }

        public string SessionTTLMin { get; set; }

        public bool SkipLeaveOnInt { get; set; }

        public List<object> StartJoinAddrsLAN { get; set; }

        public List<object> StartJoinAddrsWAN { get; set; }

        public string SyncCoordinateIntervalMin { get; set; }

        public int SyncCoordinateRateTarget { get; set; }

        public string SyslogFacility { get; set; }

        public List<object> TLSCipherSuites { get; set; }

        public string TLSMinVersion { get; set; }

        public bool TLSPreferServerCipherSuites { get; set; }

        public TaggedAddressesConfiguration TaggedAddresses { get; set; }

        public TelemetryConfiguration Telemetry { get; set; }

        public bool TranslateWANAddrs { get; set; }

        public string UIContentPath { get; set; }

        public string UIDir { get; set; }

        public string UnixSocketGroup { get; set; }

        public string UnixSocketMode { get; set; }

        public string UnixSocketUser { get; set; }

        public bool VerifyIncoming { get; set; }

        public bool VerifyIncomingHTTPS { get; set; }

        public bool VerifyIncomingRPC { get; set; }

        public bool VerifyOutgoing { get; set; }

        public bool VerifyServerHostname { get; set; }

        public string Version { get; set; }

        public string VersionPrerelease { get; set; }

        public List<object> Watches { get; set; }
    }
}
